package com.yuanshi.food.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 订单操作日志表（存储订单操作记录，手册“操作可追溯”要求）
 * @TableName order_log
 */
@TableName(value ="order_log")
@Data
public class OrderLog {
    /**
     * 日志ID（主键）
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 业务标识（固定42位字符串）
     */
    @TableField(value = "biz_code")
    private String bizCode;

    /**
     * 订单ID（关联order.id）
     */
    @TableField(value = "order_id")
    private Long orderId;

    /**
     * 订单编号（冗余存储）
     */
    @TableField(value = "order_no")
    private String orderNo;

    /**
     * 操作类型：1-创建订单，2-支付订单，3-取消订单，4-商家接单，5-开始配送，6-完成订单（枚举化操作类型，手册“操作日志可审计”要求）
     */
    @TableField(value = "operate_type")
    private Object operateType;

    /**
     * 操作内容（如“用户取消订单，原因：不想吃了”，手册“日志内容明确化”要求）
     */
    @TableField(value = "operate_content")
    private String operateContent;

    /**
     * 操作人ID（用户ID/管理员ID，可追溯操作人）
     */
    @TableField(value = "operator_id")
    private Long operatorId;

    /**
     * 操作人名称（冗余存储，避免用户/管理员名称修改）
     */
    @TableField(value = "operator_name")
    private String operatorName;

    /**
     * 逻辑删除：0-未删除，1-已删除
     */
    @TableField(value = "is_deleted")
    private Integer isDeleted;

    /**
     * 操作时间（日志时间不可修改）
     */
    @TableField(value = "create_time")
    private Date createTime;
}